package co.baiku.boot.orm.service.impl;

import co.baiku.boot.common.tools.JsonTools;
import co.baiku.boot.core.orm.service.impl.BaseServiceImpl;
import co.baiku.boot.core.orm.tools.JpaTools;
import co.baiku.boot.orm.dao.UserAdminDAO;
import co.baiku.boot.orm.dto.UserAdminDto;
import co.baiku.boot.orm.po.UserAdmin;
import co.baiku.boot.orm.service.UserAdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.Map;

@Transactional(rollbackFor = Exception.class)
@Service
public class UserAdminServiceImpl extends BaseServiceImpl<UserAdmin, UserAdminDto, Long> implements UserAdminService {

    private UserAdminDAO userAdminDAO;

    @Autowired
    public UserAdminServiceImpl(UserAdminDAO userAdminDAO) {
        super(userAdminDAO);
        this.userAdminDAO = userAdminDAO;
    }

    @Override
    public int dynamicUpdate(UserAdmin userAdmin) {
        return userAdminDAO.dynamicUpdate(userAdmin);
    }

    @Override
    public void transactionTest() {
        Map map = new HashMap();
        map.put("id", 31);
        int deleteById = userAdminDAO.templateUpdate(JpaTools.getEntityManager(), "deleteById", map);
        System.out.println(JsonTools.beanToJson(deleteById));

        Map map2 = new HashMap();
        map2.put("id", 30);
        map2.put("name", "123");
        int updateById = userAdminDAO.templateUpdate(JpaTools.getEntityManager(), "updateById", map2);
        System.out.println(JsonTools.beanToJson(updateById));

        throw new NullPointerException();
    }

}
